iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0
自我挑戰組

<< Unreal 進廠維修,就從賽車遊戲開始 >>系列 第 14

Day14. 【Unreal Engine 5】從高級賽車模板看 UE5(10):車輛藍圖 - 移動&煞車 & 煞車燈

  • 分享至 

  • xImage
  •  

閱讀提醒:本文會以解析高級賽車模板功能來介紹 Vehicle Blueprint(車輛藍圖)如何撰寫車輛的移動及煞車。

服用說明:閱讀此篇前,請先到 Project Setting 設定 Engine Input。
https://ithelp.ithome.com.tw/articles/10295600

Unreal Engine:5.03 高級賽車模板

OS:Windows10

本文大綱

1. MoveForward 油門、前進、煞車、煞車燈
2. MoveRight 轉向
3. Brake Light function 煞車燈
4. Handbrake and brake lights 手煞車、煞車燈

昨天寫好了車輛的 Component 的設定,今天就繼續來看車輛藍圖吧!

開始撰寫前,提醒大家先到 Project Setting 設定 Engine Input,設定 Input 的部份,在 Day6 的文有提到,這邊就不再多說明了。

MoveForward 油門、前進、煞車、煞車燈

  • 首先我們先新增 InputAxis MoveForward 的事件,點擊 Exec 節點,並拖曳至空白處放開,新增 Branch

  • 點擊 Axis Value 的節點,並拖曳至空白處搜尋 >=,選擇 Greater Equal ,並將數值設為 0.0。而 Output 接上剛剛創建的 Branch 的 Condition 節點。

    • 意為若前進 Input 的值為 >= 0,則為目前油門是有受到 Input 影響的狀態。
    • 如果按下 W,Input MoveForward,會接收到 >= 0 的值。
    • 所以後面我們要來接 Branch 分支,去分別判斷現在的 Input 是該前進還是該煞車。
    • 可以想成是 if 的概念。
  • BranchTrue 節點 (Input >= 0)

    • Throttle 油門:

      • 從 Branch 的 True 節點,新增 Set Throttle Input ,其接收的 Input 數值範圍為 「0 ~ 1」,需將 InputAxis Forward 的 Axis ValueThrottle 油門節點相連。 (「Vehicle Movement Component」會很貼心的自動生成連上 Target 節點)
    • Brake 煞車:

      • 點擊 Set Throttle Input 的 Output 節點拖曳到空白處新增 Set Brake Input,並將此 Vehicle Movement Component 傳遞給 Target
    • Brake Light 煞車燈:

      • 接著我們在 Set Brake Input 的 Output 節點新增 Do Once 節點,顧名思義就是只會觸發、執行一次,在 Completed 節點連上 Brake Lights 事件。

這邊可以想像成平常開車時,前進時油門需要一直踩著,Input 一次只給一次的力,然後就會減速甚至停下來,所以後面就接煞車。

  • BranchFalse 節點 (Input < 0)
    • 一樣從 InputAxis Forward 的 Axis Value 節點新增 Multiply,顧名思義為 A x B,並將值設為 -1.0
    • 再從 Branch 的 False 節點新增 Set Brake Input,並將 Multiply 的 Output 連上 Brake 節點。
    • 同樣地,跟 True 相反,這邊接上 Set Throttle Input,然後 Target 節點連上 Vehicle Movement Component,就像踩一下油門後放開,就會停止繼續減速。
    • 最後一樣連上 Brake Lights 事件,並將 Output 連上前面新增的 Do Once 的 Reset 節點,讓之後點擊煞車時還能夠觸發。

MoveRight 轉向

  • 再來新增轉向事件 Input Axis MoveRight,點擊 Exec 節點並拖曳至空白處放開新增 Set Steering Input
  • 並將 Steering 節點連上 Axis Value

Brake Light function 煞車燈

  • 這個煞車燈的函數,就是上方新增的 Brake Lights 函數,分開寫會比較清楚,所以補在這!
  • 這邊的邏輯主要是透過動態實例用來更改前燈和尾燈材質的參數。
  • 首先在左邊 functions 面板 新增 Brake Lights 函數,新增完成後點擊兩下,打開函數的藍圖面板。
  • 在面板中新增 Create Dynamic Material Instance (創建動態材質實例),然後設置 Set Material (材質的),並將 Target 連上 Mesh
  • Branch 分支就是分別設定開燈 True 及關燈 False 的亮度參數(Value = 200.0、4.0)。
  • 再將 Brake Lights 節點接上 Branch,就能控制是否開啟煞車燈了。

Handbrake and brake lights 手煞車、煞車燈

  • 再回到 Event Graph,來設定手煞的事件。
  • 新增 InputAction Handbrake 的事件,它的 Output 為 Pressed(按下) 跟 Released(放開),分別新增 Set Handbrake InputTarget 連上 Vehicle Movement Component,Output 連上 Brake Lights 的事件。
  • 最後勾選 Pressed 的 Set Handbrake InputBrake Lights 的節點布林值。
  • 這段邏輯主要是分別設置收到 Handbrake 的 Input 時,利用 bool 判斷、分別執行 Handbrake 或是關閉 Handbrake。

TIPS

  1. 在所有的事件藍圖中,左邊的點是 Input,右邊的點是 Output,且由左而右為執行順序。

  2. 滑鼠按住節點,並拖曳到空白處放開,即可搜尋並建立事件、函數、變數...等等。

  3. 如果想要有灰色區塊的註解,可以用滑鼠將需要註解的區塊框起來後,按

小結:基本的移動藍圖控制就到這了。在 Unreal 中,新增什麼都按滑鼠右鍵就對了!這次感覺寫得比昨天好一點點了~( ˘・з・)
/images/emoticon/emoticon28.gif


上一篇
Day13. 【Unreal Engine 5】從高級賽車模板看 UE5(9):車輛藍圖 - Movement
下一篇
Day15. 【Unreal Engine 5】從高級賽車模板看 UE5(11):車輛藍圖 - 控制視角&切換視角
系列文
<< Unreal 進廠維修,就從賽車遊戲開始 >>30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言